{
 "metadata": {
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.8.5"
  },
  "orig_nbformat": 2,
  "kernelspec": {
   "name": "python3",
   "display_name": "Python 3.8.5 64-bit ('base': conda)",
   "metadata": {
    "interpreter": {
     "hash": "6cd6e2203b621035efd3b4ac9716079b52ce7fc5622f6651a3ae71459e0d54ce"
    }
   }
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2,
 "cells": [
  {
   "source": [
    "能实现的量子门\n",
    "$$U_{i,j}=e^{-iJ_{i,j}t(X_iX_j+Y_iY_j)}$$\n",
    "需要的量子门$G$可通过如下变换得到\n",
    "$$G_{i,j}=XU_{i,j}XU_{i,j}=e^{-2iJ_{i,j}tX_iX_j}$$"
   ],
   "cell_type": "markdown",
   "metadata": {}
  },
  {
   "source": [
    "对于图$M=\\{(i,j):a_{i,j},\\dots\\}$，由$m$个节点构成，两两之间的权重为$a_{i,j}$，选择合适的时间$t$，使得\n",
    "$$G_{i,j}=G_{i,j}(\\gamma)=e^{-i\\gamma a_{i,j}X_iX_j},t=\\frac{\\gamma a_{i,j}}{2J_{i,j}}$$"
   ],
   "cell_type": "markdown",
   "metadata": {}
  },
  {
   "source": [
    "计算由图得到的哈密顿量\n",
    "$$C=\\sum_{(i,j)}a_{i,j}X_iX_j$$"
   ],
   "cell_type": "markdown",
   "metadata": {}
  },
  {
   "source": [
    "QAOA算法中，取如下两个算赋，\n",
    "$$U_C(\\gamma)=e^{-i\\gamma C}=\\Pi_{(i,j)}{G_{i,j}(\\gamma)}$$\n",
    "$$U_B(\\beta)=e^{-i\\beta B}=\\Pi_m{e^{-i\\beta Z_m}}, B=\\sum_m Z_m$$"
   ],
   "cell_type": "markdown",
   "metadata": {}
  },
  {
   "source": [
    "将上面两个算赋作用在初态上$p$次，\n",
    "$$\\left|\\gamma,\\beta\\right>=U_B(\\beta_p)U_C(\\gamma_p)\\dots U_B(\\beta_1)U_C(\\gamma_1)\\left|0\\right>^{\\oplus n}$$"
   ],
   "cell_type": "markdown",
   "metadata": {}
  },
  {
   "source": [
    "对于给定$p$，能求出如下量的最小值，以及对应的参数。\n",
    "$$\\left<C\\right>=\\left<\\gamma,\\beta\\right|C\\left|\\gamma,\\beta\\right>$$"
   ],
   "cell_type": "markdown",
   "metadata": {}
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [],
   "source": [
    "import qutip as qt\n",
    "import numpy as np\n",
    "import matplotlib.pyplot as plt\n",
    "from scipy.optimize import minimize\n",
    "import pandas as pd\n",
    "paulis={'X': qt.sigmax, 'Y':qt.sigmay, 'Z':qt.sigmaz}\n",
    "iop=pd.read_csv('iop.csv',sep=' ')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [],
   "source": [
    "def get_coupling(graph,iop):\n",
    "    J={}\n",
    "    for (q1,q2),_ in graph.items():\n",
    "        J[(q1,q2)]=abs(iop['g_j'][q1+1]*iop['g_j'][q2+1]/(iop['w_j'][q1+1]-iop['w_j'][q2+1]))/1e3\n",
    "    return J"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [],
   "source": [
    "def get_graph_max_node(graph):\n",
    "    # 得到对图进行模拟需要的比特数目\n",
    "    return max([max(i) for i in graph])+1"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 43,
   "metadata": {},
   "outputs": [],
   "source": [
    "def place(pois,n,base_gate='X'):\n",
    "    # 在n比特的pois位置上作用basic_gate\n",
    "    g=[qt.identity(2) for i in range(n)]\n",
    "    for i in pois:\n",
    "        g[i]=paulis[base_gate]()\n",
    "    return qt.tensor(g)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 46,
   "metadata": {},
   "outputs": [],
   "source": [
    "q1=place([0,1],3,'X')+place([0,1],3,'Y')\n",
    "q2=place([1,2],3,'X')+place([1,2],3,'Y')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 51,
   "metadata": {},
   "outputs": [
    {
     "output_type": "stream",
     "name": "stdout",
     "text": [
      "Quantum object: dims = [[2, 2, 2], [2, 2, 2]], shape = (8, 8), type = oper, isherm = True\nQobj data =\n[[0. 0. 0. 0. 0. 0. 0. 0.]\n [0. 0. 0. 0. 0. 0. 0. 0.]\n [0. 0. 0. 0. 0. 0. 0. 0.]\n [0. 0. 0. 0. 0. 0. 0. 0.]\n [0. 0. 0. 0. 0. 0. 0. 0.]\n [0. 0. 0. 0. 0. 0. 0. 0.]\n [0. 0. 0. 0. 0. 0. 0. 0.]\n [0. 0. 0. 0. 0. 0. 0. 0.]]\n"
     ]
    }
   ],
   "source": [
    "print(place([0,1],3,'X')*place([0,1],3,'Y')-place([0,1],3,'Y')*place([0,1],3,'X'))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 39,
   "metadata": {},
   "outputs": [
    {
     "output_type": "execute_result",
     "data": {
      "text/plain": [
       "Quantum object: dims = [[2, 2, 2], [2, 2, 2]], shape = (8, 8), type = oper, isherm = False\n",
       "Qobj data =\n",
       "[[ 0.  0.  0.  0.  0.  0.  0.  0.]\n",
       " [ 0.  0.  0.  0. -4.  0.  0.  0.]\n",
       " [ 0.  0.  0.  0.  0.  0.  0.  0.]\n",
       " [ 0.  0.  0.  0.  0.  0.  4.  0.]\n",
       " [ 0.  4.  0.  0.  0.  0.  0.  0.]\n",
       " [ 0.  0.  0.  0.  0.  0.  0.  0.]\n",
       " [ 0.  0.  0. -4.  0.  0.  0.  0.]\n",
       " [ 0.  0.  0.  0.  0.  0.  0.  0.]]"
      ],
      "text/latex": "Quantum object: dims = [[2, 2, 2], [2, 2, 2]], shape = (8, 8), type = oper, isherm = False\\begin{equation*}\\left(\\begin{array}{*{11}c}0.0 & 0.0 & 0.0 & 0.0 & 0.0 & 0.0 & 0.0 & 0.0\\\\0.0 & 0.0 & 0.0 & 0.0 & -4.0 & 0.0 & 0.0 & 0.0\\\\0.0 & 0.0 & 0.0 & 0.0 & 0.0 & 0.0 & 0.0 & 0.0\\\\0.0 & 0.0 & 0.0 & 0.0 & 0.0 & 0.0 & 4.0 & 0.0\\\\0.0 & 4.0 & 0.0 & 0.0 & 0.0 & 0.0 & 0.0 & 0.0\\\\0.0 & 0.0 & 0.0 & 0.0 & 0.0 & 0.0 & 0.0 & 0.0\\\\0.0 & 0.0 & 0.0 & -4.0 & 0.0 & 0.0 & 0.0 & 0.0\\\\0.0 & 0.0 & 0.0 & 0.0 & 0.0 & 0.0 & 0.0 & 0.0\\\\\\end{array}\\right)\\end{equation*}"
     },
     "metadata": {},
     "execution_count": 39
    }
   ],
   "source": [
    "q1*q2-q2*q1"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [],
   "source": [
    "def build_C(graph,base_gate='X'):\n",
    "    n=get_graph_max_node(graph)\n",
    "    res=0\n",
    "    for node,w in graph.items():\n",
    "        res+=place(node,n,base_gate)*w\n",
    "    return res\n",
    "def build_B(graph,base_gate='Z',b=1):\n",
    "    n=get_graph_max_node(graph)\n",
    "    B=0\n",
    "    for i in range(n):\n",
    "        B+=place([i],n,base_gate)*b\n",
    "    return B"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [],
   "source": [
    "def build_U_C(gamma,C):\n",
    "    return (-1j*gamma*C).expm()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [],
   "source": [
    "def build_U_B(beta,B):\n",
    "    return (-1j*beta*B).expm()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {},
   "outputs": [],
   "source": [
    "def build_U_total(para,C,B):\n",
    "    U=1\n",
    "    for index,val in enumerate(para):\n",
    "        if index%2==0:\n",
    "            U=build_U_C(val,C)*U\n",
    "        else:\n",
    "            U=build_U_B(val,B)*U\n",
    "    return U"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {},
   "outputs": [],
   "source": [
    "def calc_exptation(C,U_total,init_state):\n",
    "    return qt.expect(U_total.dag()*C*U_total,init_state)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {},
   "outputs": [],
   "source": [
    "def show_amp(state):\n",
    "    amp = np.diag(state.dot(np.conj(state.T)))\n",
    "    n_qubits = int(np.log2(len(amp)))\n",
    "    labels = [bin(i)[2:].zfill(n_qubits) for i in range(len(amp))]\n",
    "    plt.bar(labels, amp)\n",
    "    plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {},
   "outputs": [],
   "source": [
    "def find_min(para, C, B, init_state, w):\n",
    "    U_total=build_U_total(para,C,B)\n",
    "    eng=calc_exptation(C,U_total,init_state)/w\n",
    "    return eng"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 24,
   "metadata": {},
   "outputs": [],
   "source": [
    "b=np.pi/8\n",
    "a=np.pi/8\n",
    "graph={(0,1):1*a,(1,2):1*a,(2,3):1*a,(0,3):1*a,(0,2):1*a,(1,3):1*a}\n",
    "J=get_coupling(graph,iop)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 30,
   "metadata": {},
   "outputs": [],
   "source": [
    "n=get_graph_max_node(graph)\n",
    "hn=qt.qip.operations.hadamard_transform(n)\n",
    "init_state=qt.tensor([qt.basis(2,1) for i in range(n)])\n",
    "C=build_C(graph)\n",
    "B=build_B(graph, b=b)\n",
    "para=np.array([-0.1,-0.1,-0.1,-0.1])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 26,
   "metadata": {},
   "outputs": [],
   "source": [
    "import tqdm"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 27,
   "metadata": {},
   "outputs": [
    {
     "output_type": "stream",
     "name": "stderr",
     "text": [
      "50it [00:14,  3.44it/s]\n"
     ]
    }
   ],
   "source": [
    "gamma = np.linspace(-2, 2, 50)\n",
    "beta = np.linspace(-2, 2, 50)\n",
    "res = []\n",
    "for i,gamma_i in tqdm.tqdm(enumerate(gamma)):\n",
    "    res.append([])\n",
    "    for j, beta_j in enumerate(beta):\n",
    "        res[-1].append(find_min([gamma_i,beta_j],C,B,init_state,a))\n",
    "res=np.array(res)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 28,
   "metadata": {},
   "outputs": [
    {
     "output_type": "stream",
     "name": "stdout",
     "text": [
      "-1.3917980466331237\n"
     ]
    },
    {
     "output_type": "display_data",
     "data": {
      "text/plain": "<Figure size 432x288 with 1 Axes>",
      "image/svg+xml": "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"no\"?>\n<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n  \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n<!-- Created with matplotlib (https://matplotlib.org/) -->\n<svg height=\"250.142944pt\" version=\"1.1\" viewBox=\"0 0 251.565 250.142944\" width=\"251.565pt\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n <metadata>\n  <rdf:RDF xmlns:cc=\"http://creativecommons.org/ns#\" xmlns:dc=\"http://purl.org/dc/elements/1.1/\" xmlns:rdf=\"http://www.w3.org/1999/02/22-rdf-syntax-ns#\">\n   <cc:Work>\n    <dc:type rdf:resource=\"http://purl.org/dc/dcmitype/StillImage\"/>\n    <dc:date>2021-04-01T20:49:12.131968</dc:date>\n    <dc:format>image/svg+xml</dc:format>\n    <dc:creator>\n     <cc:Agent>\n      <dc:title>Matplotlib v3.3.2, https://matplotlib.org/</dc:title>\n     </cc:Agent>\n    </dc:creator>\n   </cc:Work>\n  </rdf:RDF>\n </metadata>\n <defs>\n  <style type=\"text/css\">*{stroke-linecap:butt;stroke-linejoin:round;}</style>\n </defs>\n <g id=\"figure_1\">\n  <g id=\"patch_1\">\n   <path d=\"M 0 250.142944 \nL 251.565 250.142944 \nL 251.565 0 \nL 0 0 \nz\n\" style=\"fill:none;\"/>\n  </g>\n  <g id=\"axes_1\">\n   <g id=\"patch_2\">\n    <path d=\"M 26.925 226.264819 \nL 244.365 226.264819 \nL 244.365 8.824819 \nL 26.925 8.824819 \nz\n\" style=\"fill:#ffffff;\"/>\n   </g>\n   <g clip-path=\"url(#p37e761695f)\">\n    <image height=\"218\" id=\"image47b7492e1a\" transform=\"scale(1 -1)translate(0 -218)\" width=\"218\" x=\"26.925\" xlink:href=\"data:image/png;base64,\n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\" y=\"-8.264819\"/>\n   </g>\n   <g id=\"matplotlib.axis_1\">\n    <g id=\"xtick_1\">\n     <g id=\"line2d_1\">\n      <defs>\n       <path d=\"M 0 0 \nL 0 3.5 \n\" id=\"m37225a5f18\" style=\"stroke:#000000;stroke-width:0.8;\"/>\n      </defs>\n      <g>\n       <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"29.0994\" xlink:href=\"#m37225a5f18\" y=\"226.264819\"/>\n      </g>\n     </g>\n     <g id=\"text_1\">\n      <!-- 0 -->\n      <g transform=\"translate(25.91815 240.863256)scale(0.1 -0.1)\">\n       <defs>\n        <path d=\"M 31.78125 66.40625 \nQ 24.171875 66.40625 20.328125 58.90625 \nQ 16.5 51.421875 16.5 36.375 \nQ 16.5 21.390625 20.328125 13.890625 \nQ 24.171875 6.390625 31.78125 6.390625 \nQ 39.453125 6.390625 43.28125 13.890625 \nQ 47.125 21.390625 47.125 36.375 \nQ 47.125 51.421875 43.28125 58.90625 \nQ 39.453125 66.40625 31.78125 66.40625 \nz\nM 31.78125 74.21875 \nQ 44.046875 74.21875 50.515625 64.515625 \nQ 56.984375 54.828125 56.984375 36.375 \nQ 56.984375 17.96875 50.515625 8.265625 \nQ 44.046875 -1.421875 31.78125 -1.421875 \nQ 19.53125 -1.421875 13.0625 8.265625 \nQ 6.59375 17.96875 6.59375 36.375 \nQ 6.59375 54.828125 13.0625 64.515625 \nQ 19.53125 74.21875 31.78125 74.21875 \nz\n\" id=\"DejaVuSans-48\"/>\n       </defs>\n       <use xlink:href=\"#DejaVuSans-48\"/>\n      </g>\n     </g>\n    </g>\n    <g id=\"xtick_2\">\n     <g id=\"line2d_2\">\n      <g>\n       <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"72.5874\" xlink:href=\"#m37225a5f18\" y=\"226.264819\"/>\n      </g>\n     </g>\n     <g id=\"text_2\">\n      <!-- 10 -->\n      <g transform=\"translate(66.2249 240.863256)scale(0.1 -0.1)\">\n       <defs>\n        <path d=\"M 12.40625 8.296875 \nL 28.515625 8.296875 \nL 28.515625 63.921875 \nL 10.984375 60.40625 \nL 10.984375 69.390625 \nL 28.421875 72.90625 \nL 38.28125 72.90625 \nL 38.28125 8.296875 \nL 54.390625 8.296875 \nL 54.390625 0 \nL 12.40625 0 \nz\n\" id=\"DejaVuSans-49\"/>\n       </defs>\n       <use xlink:href=\"#DejaVuSans-49\"/>\n       <use x=\"63.623047\" xlink:href=\"#DejaVuSans-48\"/>\n      </g>\n     </g>\n    </g>\n    <g id=\"xtick_3\">\n     <g id=\"line2d_3\">\n      <g>\n       <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"116.0754\" xlink:href=\"#m37225a5f18\" y=\"226.264819\"/>\n      </g>\n     </g>\n     <g id=\"text_3\">\n      <!-- 20 -->\n      <g transform=\"translate(109.7129 240.863256)scale(0.1 -0.1)\">\n       <defs>\n        <path d=\"M 19.1875 8.296875 \nL 53.609375 8.296875 \nL 53.609375 0 \nL 7.328125 0 \nL 7.328125 8.296875 \nQ 12.9375 14.109375 22.625 23.890625 \nQ 32.328125 33.6875 34.8125 36.53125 \nQ 39.546875 41.84375 41.421875 45.53125 \nQ 43.3125 49.21875 43.3125 52.78125 \nQ 43.3125 58.59375 39.234375 62.25 \nQ 35.15625 65.921875 28.609375 65.921875 \nQ 23.96875 65.921875 18.8125 64.3125 \nQ 13.671875 62.703125 7.8125 59.421875 \nL 7.8125 69.390625 \nQ 13.765625 71.78125 18.9375 73 \nQ 24.125 74.21875 28.421875 74.21875 \nQ 39.75 74.21875 46.484375 68.546875 \nQ 53.21875 62.890625 53.21875 53.421875 \nQ 53.21875 48.921875 51.53125 44.890625 \nQ 49.859375 40.875 45.40625 35.40625 \nQ 44.1875 33.984375 37.640625 27.21875 \nQ 31.109375 20.453125 19.1875 8.296875 \nz\n\" id=\"DejaVuSans-50\"/>\n       </defs>\n       <use xlink:href=\"#DejaVuSans-50\"/>\n       <use x=\"63.623047\" xlink:href=\"#DejaVuSans-48\"/>\n      </g>\n     </g>\n    </g>\n    <g id=\"xtick_4\">\n     <g id=\"line2d_4\">\n      <g>\n       <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"159.5634\" xlink:href=\"#m37225a5f18\" y=\"226.264819\"/>\n      </g>\n     </g>\n     <g id=\"text_4\">\n      <!-- 30 -->\n      <g transform=\"translate(153.2009 240.863256)scale(0.1 -0.1)\">\n       <defs>\n        <path d=\"M 40.578125 39.3125 \nQ 47.65625 37.796875 51.625 33 \nQ 55.609375 28.21875 55.609375 21.1875 \nQ 55.609375 10.40625 48.1875 4.484375 \nQ 40.765625 -1.421875 27.09375 -1.421875 \nQ 22.515625 -1.421875 17.65625 -0.515625 \nQ 12.796875 0.390625 7.625 2.203125 \nL 7.625 11.71875 \nQ 11.71875 9.328125 16.59375 8.109375 \nQ 21.484375 6.890625 26.8125 6.890625 \nQ 36.078125 6.890625 40.9375 10.546875 \nQ 45.796875 14.203125 45.796875 21.1875 \nQ 45.796875 27.640625 41.28125 31.265625 \nQ 36.765625 34.90625 28.71875 34.90625 \nL 20.21875 34.90625 \nL 20.21875 43.015625 \nL 29.109375 43.015625 \nQ 36.375 43.015625 40.234375 45.921875 \nQ 44.09375 48.828125 44.09375 54.296875 \nQ 44.09375 59.90625 40.109375 62.90625 \nQ 36.140625 65.921875 28.71875 65.921875 \nQ 24.65625 65.921875 20.015625 65.03125 \nQ 15.375 64.15625 9.8125 62.3125 \nL 9.8125 71.09375 \nQ 15.4375 72.65625 20.34375 73.4375 \nQ 25.25 74.21875 29.59375 74.21875 \nQ 40.828125 74.21875 47.359375 69.109375 \nQ 53.90625 64.015625 53.90625 55.328125 \nQ 53.90625 49.265625 50.4375 45.09375 \nQ 46.96875 40.921875 40.578125 39.3125 \nz\n\" id=\"DejaVuSans-51\"/>\n       </defs>\n       <use xlink:href=\"#DejaVuSans-51\"/>\n       <use x=\"63.623047\" xlink:href=\"#DejaVuSans-48\"/>\n      </g>\n     </g>\n    </g>\n    <g id=\"xtick_5\">\n     <g id=\"line2d_5\">\n      <g>\n       <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"203.0514\" xlink:href=\"#m37225a5f18\" y=\"226.264819\"/>\n      </g>\n     </g>\n     <g id=\"text_5\">\n      <!-- 40 -->\n      <g transform=\"translate(196.6889 240.863256)scale(0.1 -0.1)\">\n       <defs>\n        <path d=\"M 37.796875 64.3125 \nL 12.890625 25.390625 \nL 37.796875 25.390625 \nz\nM 35.203125 72.90625 \nL 47.609375 72.90625 \nL 47.609375 25.390625 \nL 58.015625 25.390625 \nL 58.015625 17.1875 \nL 47.609375 17.1875 \nL 47.609375 0 \nL 37.796875 0 \nL 37.796875 17.1875 \nL 4.890625 17.1875 \nL 4.890625 26.703125 \nz\n\" id=\"DejaVuSans-52\"/>\n       </defs>\n       <use xlink:href=\"#DejaVuSans-52\"/>\n       <use x=\"63.623047\" xlink:href=\"#DejaVuSans-48\"/>\n      </g>\n     </g>\n    </g>\n   </g>\n   <g id=\"matplotlib.axis_2\">\n    <g id=\"ytick_1\">\n     <g id=\"line2d_6\">\n      <defs>\n       <path d=\"M 0 0 \nL -3.5 0 \n\" id=\"m60e64e36f4\" style=\"stroke:#000000;stroke-width:0.8;\"/>\n      </defs>\n      <g>\n       <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"26.925\" xlink:href=\"#m60e64e36f4\" y=\"10.999219\"/>\n      </g>\n     </g>\n     <g id=\"text_6\">\n      <!-- 0 -->\n      <g transform=\"translate(13.5625 14.798437)scale(0.1 -0.1)\">\n       <use xlink:href=\"#DejaVuSans-48\"/>\n      </g>\n     </g>\n    </g>\n    <g id=\"ytick_2\">\n     <g id=\"line2d_7\">\n      <g>\n       <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"26.925\" xlink:href=\"#m60e64e36f4\" y=\"54.487219\"/>\n      </g>\n     </g>\n     <g id=\"text_7\">\n      <!-- 10 -->\n      <g transform=\"translate(7.2 58.286437)scale(0.1 -0.1)\">\n       <use xlink:href=\"#DejaVuSans-49\"/>\n       <use x=\"63.623047\" xlink:href=\"#DejaVuSans-48\"/>\n      </g>\n     </g>\n    </g>\n    <g id=\"ytick_3\">\n     <g id=\"line2d_8\">\n      <g>\n       <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"26.925\" xlink:href=\"#m60e64e36f4\" y=\"97.975219\"/>\n      </g>\n     </g>\n     <g id=\"text_8\">\n      <!-- 20 -->\n      <g transform=\"translate(7.2 101.774437)scale(0.1 -0.1)\">\n       <use xlink:href=\"#DejaVuSans-50\"/>\n       <use x=\"63.623047\" xlink:href=\"#DejaVuSans-48\"/>\n      </g>\n     </g>\n    </g>\n    <g id=\"ytick_4\">\n     <g id=\"line2d_9\">\n      <g>\n       <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"26.925\" xlink:href=\"#m60e64e36f4\" y=\"141.463219\"/>\n      </g>\n     </g>\n     <g id=\"text_9\">\n      <!-- 30 -->\n      <g transform=\"translate(7.2 145.262437)scale(0.1 -0.1)\">\n       <use xlink:href=\"#DejaVuSans-51\"/>\n       <use x=\"63.623047\" xlink:href=\"#DejaVuSans-48\"/>\n      </g>\n     </g>\n    </g>\n    <g id=\"ytick_5\">\n     <g id=\"line2d_10\">\n      <g>\n       <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"26.925\" xlink:href=\"#m60e64e36f4\" y=\"184.951219\"/>\n      </g>\n     </g>\n     <g id=\"text_10\">\n      <!-- 40 -->\n      <g transform=\"translate(7.2 188.750437)scale(0.1 -0.1)\">\n       <use xlink:href=\"#DejaVuSans-52\"/>\n       <use x=\"63.623047\" xlink:href=\"#DejaVuSans-48\"/>\n      </g>\n     </g>\n    </g>\n   </g>\n   <g id=\"patch_3\">\n    <path d=\"M 26.925 226.264819 \nL 26.925 8.824819 \n\" style=\"fill:none;stroke:#000000;stroke-linecap:square;stroke-linejoin:miter;stroke-width:0.8;\"/>\n   </g>\n   <g id=\"patch_4\">\n    <path d=\"M 244.365 226.264819 \nL 244.365 8.824819 \n\" style=\"fill:none;stroke:#000000;stroke-linecap:square;stroke-linejoin:miter;stroke-width:0.8;\"/>\n   </g>\n   <g id=\"patch_5\">\n    <path d=\"M 26.925 226.264819 \nL 244.365 226.264819 \n\" style=\"fill:none;stroke:#000000;stroke-linecap:square;stroke-linejoin:miter;stroke-width:0.8;\"/>\n   </g>\n   <g id=\"patch_6\">\n    <path d=\"M 26.925 8.824819 \nL 244.365 8.824819 \n\" style=\"fill:none;stroke:#000000;stroke-linecap:square;stroke-linejoin:miter;stroke-width:0.8;\"/>\n   </g>\n  </g>\n </g>\n <defs>\n  <clipPath id=\"p37e761695f\">\n   <rect height=\"217.44\" width=\"217.44\" x=\"26.925\" y=\"8.824819\"/>\n  </clipPath>\n </defs>\n</svg>\n",
      "image/png": "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\n"
     },
     "metadata": {
      "needs_background": "light"
     }
    }
   ],
   "source": [
    "plt.imshow(res)\n",
    "print(res.min())"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 31,
   "metadata": {},
   "outputs": [
    {
     "output_type": "stream",
     "name": "stdout",
     "text": [
      "[-0.15594035 -0.09809329 -0.09605344 -0.15722124]\n",
      "[-0.16379045 -0.12481049 -0.10068508 -0.1809324 ]\n",
      "[-0.17919811 -0.12795273 -0.12639843 -0.17316219]\n",
      "[-0.15196847 -0.29597103 -0.25539748 -0.11316921]\n",
      "[-0.14194133 -0.32382315 -0.29391874 -0.10796684]\n",
      "[-0.13448509 -0.33369447 -0.32200351 -0.11547411]\n",
      "[-0.13243742 -0.35896596 -0.37129179 -0.12326341]\n",
      "[-0.13834295 -0.37894782 -0.43964784 -0.13940459]\n",
      "[-0.16767468 -0.39027681 -0.54328569 -0.15815535]\n",
      "[-0.20681985 -0.32288339 -0.65743288 -0.21003661]\n",
      "[-0.23147067 -0.28596894 -0.67451373 -0.18952073]\n",
      "[-0.23438586 -0.27572404 -0.66434135 -0.16039678]\n",
      "[-0.23818895 -0.27741871 -0.69377399 -0.1597985 ]\n",
      "[-0.23239213 -0.27228188 -0.70947112 -0.16647501]\n",
      "[-0.23031404 -0.27640941 -0.70694574 -0.16313686]\n",
      "[-0.23052582 -0.276063   -0.70817114 -0.16247925]\n",
      "[-0.2304702  -0.2760827  -0.70825701 -0.16252161]\n",
      "[-0.23047139 -0.27608085 -0.70825703 -0.16252209]\n",
      "Optimization terminated successfully.\n",
      "         Current function value: -2.000000\n",
      "         Iterations: 18\n",
      "         Function evaluations: 130\n",
      "         Gradient evaluations: 26\n"
     ]
    }
   ],
   "source": [
    "frac=np.ones_like(para)\n",
    "frac[::2]=a\n",
    "frac[1::2]=b\n",
    "res=minimize(find_min, para, args=(C,B,init_state,a),method='bfgs',options={'disp':True},callback=lambda x: print(x*frac))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 32,
   "metadata": {},
   "outputs": [
    {
     "output_type": "stream",
     "name": "stderr",
     "text": [
      "/home/xuxs/anaconda3/lib/python3.8/site-packages/numpy/core/_asarray.py:85: ComplexWarning: Casting complex values to real discards the imaginary part\n  return array(a, dtype, copy=False, order=order)\n"
     ]
    },
    {
     "output_type": "display_data",
     "data": {
      "text/plain": "<Figure size 432x288 with 1 Axes>",
      "image/svg+xml": "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"no\"?>\n<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n  \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n<!-- Created with matplotlib (https://matplotlib.org/) -->\n<svg height=\"248.518125pt\" version=\"1.1\" viewBox=\"0 0 378.465625 248.518125\" width=\"378.465625pt\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n <metadata>\n  <rdf:RDF xmlns:cc=\"http://creativecommons.org/ns#\" xmlns:dc=\"http://purl.org/dc/elements/1.1/\" xmlns:rdf=\"http://www.w3.org/1999/02/22-rdf-syntax-ns#\">\n   <cc:Work>\n    <dc:type rdf:resource=\"http://purl.org/dc/dcmitype/StillImage\"/>\n    <dc:date>2021-04-01T20:51:53.582404</dc:date>\n    <dc:format>image/svg+xml</dc:format>\n    <dc:creator>\n     <cc:Agent>\n      <dc:title>Matplotlib v3.3.2, https://matplotlib.org/</dc:title>\n     </cc:Agent>\n    </dc:creator>\n   </cc:Work>\n  </rdf:RDF>\n </metadata>\n <defs>\n  <style type=\"text/css\">*{stroke-linecap:butt;stroke-linejoin:round;}</style>\n </defs>\n <g id=\"figure_1\">\n  <g id=\"patch_1\">\n   <path d=\"M 0 248.518125 \nL 378.465625 248.518125 \nL 378.465625 0 \nL 0 0 \nz\n\" style=\"fill:none;\"/>\n  </g>\n  <g id=\"axes_1\">\n   <g id=\"patch_2\">\n    <path d=\"M 36.465625 224.64 \nL 371.265625 224.64 \nL 371.265625 7.2 \nL 36.465625 7.2 \nz\n\" style=\"fill:#ffffff;\"/>\n   </g>\n   <g id=\"patch_3\">\n    <path clip-path=\"url(#p64d20e1eac)\" d=\"M 51.683807 224.64 \nL 67.094624 224.64 \nL 67.094624 224.64 \nL 51.683807 224.64 \nz\n\" style=\"fill:#1f77b4;\"/>\n   </g>\n   <g id=\"patch_4\">\n    <path clip-path=\"url(#p64d20e1eac)\" d=\"M 70.947328 224.64 \nL 86.358145 224.64 \nL 86.358145 224.64 \nL 70.947328 224.64 \nz\n\" style=\"fill:#1f77b4;\"/>\n   </g>\n   <g id=\"patch_5\">\n    <path clip-path=\"url(#p64d20e1eac)\" d=\"M 90.210849 224.64 \nL 105.621666 224.64 \nL 105.621666 224.64 \nL 90.210849 224.64 \nz\n\" style=\"fill:#1f77b4;\"/>\n   </g>\n   <g id=\"patch_6\">\n    <path clip-path=\"url(#p64d20e1eac)\" d=\"M 109.474371 224.64 \nL 124.885188 224.64 \nL 124.885188 17.554286 \nL 109.474371 17.554286 \nz\n\" style=\"fill:#1f77b4;\"/>\n   </g>\n   <g id=\"patch_7\">\n    <path clip-path=\"url(#p64d20e1eac)\" d=\"M 128.737892 224.64 \nL 144.148709 224.64 \nL 144.148709 224.64 \nL 128.737892 224.64 \nz\n\" style=\"fill:#1f77b4;\"/>\n   </g>\n   <g id=\"patch_8\">\n    <path clip-path=\"url(#p64d20e1eac)\" d=\"M 148.001413 224.64 \nL 163.41223 224.64 \nL 163.41223 17.554286 \nL 148.001413 17.554286 \nz\n\" style=\"fill:#1f77b4;\"/>\n   </g>\n   <g id=\"patch_9\">\n    <path clip-path=\"url(#p64d20e1eac)\" d=\"M 167.264935 224.64 \nL 182.675752 224.64 \nL 182.675752 17.554286 \nL 167.264935 17.554286 \nz\n\" style=\"fill:#1f77b4;\"/>\n   </g>\n   <g id=\"patch_10\">\n    <path clip-path=\"url(#p64d20e1eac)\" d=\"M 186.528456 224.64 \nL 201.939273 224.64 \nL 201.939273 224.64 \nL 186.528456 224.64 \nz\n\" style=\"fill:#1f77b4;\"/>\n   </g>\n   <g id=\"patch_11\">\n    <path clip-path=\"url(#p64d20e1eac)\" d=\"M 205.791977 224.64 \nL 221.202794 224.64 \nL 221.202794 224.64 \nL 205.791977 224.64 \nz\n\" style=\"fill:#1f77b4;\"/>\n   </g>\n   <g id=\"patch_12\">\n    <path clip-path=\"url(#p64d20e1eac)\" d=\"M 225.055498 224.64 \nL 240.466315 224.64 \nL 240.466315 17.554286 \nL 225.055498 17.554286 \nz\n\" style=\"fill:#1f77b4;\"/>\n   </g>\n   <g id=\"patch_13\">\n    <path clip-path=\"url(#p64d20e1eac)\" d=\"M 244.31902 224.64 \nL 259.729837 224.64 \nL 259.729837 17.554286 \nL 244.31902 17.554286 \nz\n\" style=\"fill:#1f77b4;\"/>\n   </g>\n   <g id=\"patch_14\">\n    <path clip-path=\"url(#p64d20e1eac)\" d=\"M 263.582541 224.64 \nL 278.993358 224.64 \nL 278.993358 224.64 \nL 263.582541 224.64 \nz\n\" style=\"fill:#1f77b4;\"/>\n   </g>\n   <g id=\"patch_15\">\n    <path clip-path=\"url(#p64d20e1eac)\" d=\"M 282.846062 224.64 \nL 298.256879 224.64 \nL 298.256879 17.554286 \nL 282.846062 17.554286 \nz\n\" style=\"fill:#1f77b4;\"/>\n   </g>\n   <g id=\"patch_16\">\n    <path clip-path=\"url(#p64d20e1eac)\" d=\"M 302.109584 224.64 \nL 317.520401 224.64 \nL 317.520401 224.64 \nL 302.109584 224.64 \nz\n\" style=\"fill:#1f77b4;\"/>\n   </g>\n   <g id=\"patch_17\">\n    <path clip-path=\"url(#p64d20e1eac)\" d=\"M 321.373105 224.64 \nL 336.783922 224.64 \nL 336.783922 224.64 \nL 321.373105 224.64 \nz\n\" style=\"fill:#1f77b4;\"/>\n   </g>\n   <g id=\"patch_18\">\n    <path clip-path=\"url(#p64d20e1eac)\" d=\"M 340.636626 224.64 \nL 356.047443 224.64 \nL 356.047443 224.64 \nL 340.636626 224.64 \nz\n\" style=\"fill:#1f77b4;\"/>\n   </g>\n   <g id=\"matplotlib.axis_1\">\n    <g id=\"xtick_1\">\n     <g id=\"line2d_1\">\n      <defs>\n       <path d=\"M 0 0 \nL 0 3.5 \n\" id=\"mbe9824f0f9\" style=\"stroke:#000000;stroke-width:0.8;\"/>\n      </defs>\n      <g>\n       <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"59.389215\" xlink:href=\"#mbe9824f0f9\" y=\"224.64\"/>\n      </g>\n     </g>\n     <g id=\"text_1\">\n      <!-- 0000 -->\n      <g transform=\"translate(46.664215 239.238438)scale(0.1 -0.1)\">\n       <defs>\n        <path d=\"M 31.78125 66.40625 \nQ 24.171875 66.40625 20.328125 58.90625 \nQ 16.5 51.421875 16.5 36.375 \nQ 16.5 21.390625 20.328125 13.890625 \nQ 24.171875 6.390625 31.78125 6.390625 \nQ 39.453125 6.390625 43.28125 13.890625 \nQ 47.125 21.390625 47.125 36.375 \nQ 47.125 51.421875 43.28125 58.90625 \nQ 39.453125 66.40625 31.78125 66.40625 \nz\nM 31.78125 74.21875 \nQ 44.046875 74.21875 50.515625 64.515625 \nQ 56.984375 54.828125 56.984375 36.375 \nQ 56.984375 17.96875 50.515625 8.265625 \nQ 44.046875 -1.421875 31.78125 -1.421875 \nQ 19.53125 -1.421875 13.0625 8.265625 \nQ 6.59375 17.96875 6.59375 36.375 \nQ 6.59375 54.828125 13.0625 64.515625 \nQ 19.53125 74.21875 31.78125 74.21875 \nz\n\" id=\"DejaVuSans-48\"/>\n       </defs>\n       <use xlink:href=\"#DejaVuSans-48\"/>\n       <use x=\"63.623047\" xlink:href=\"#DejaVuSans-48\"/>\n       <use x=\"127.246094\" xlink:href=\"#DejaVuSans-48\"/>\n       <use x=\"190.869141\" xlink:href=\"#DejaVuSans-48\"/>\n      </g>\n     </g>\n    </g>\n    <g id=\"xtick_2\">\n     <g id=\"line2d_2\">\n      <g>\n       <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"78.652737\" xlink:href=\"#mbe9824f0f9\" y=\"224.64\"/>\n      </g>\n     </g>\n     <g id=\"text_2\">\n      <!-- 0001 -->\n      <g transform=\"translate(65.927737 239.238438)scale(0.1 -0.1)\">\n       <defs>\n        <path d=\"M 12.40625 8.296875 \nL 28.515625 8.296875 \nL 28.515625 63.921875 \nL 10.984375 60.40625 \nL 10.984375 69.390625 \nL 28.421875 72.90625 \nL 38.28125 72.90625 \nL 38.28125 8.296875 \nL 54.390625 8.296875 \nL 54.390625 0 \nL 12.40625 0 \nz\n\" id=\"DejaVuSans-49\"/>\n       </defs>\n       <use xlink:href=\"#DejaVuSans-48\"/>\n       <use x=\"63.623047\" xlink:href=\"#DejaVuSans-48\"/>\n       <use x=\"127.246094\" xlink:href=\"#DejaVuSans-48\"/>\n       <use x=\"190.869141\" xlink:href=\"#DejaVuSans-49\"/>\n      </g>\n     </g>\n    </g>\n    <g id=\"xtick_3\">\n     <g id=\"line2d_3\">\n      <g>\n       <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"97.916258\" xlink:href=\"#mbe9824f0f9\" y=\"224.64\"/>\n      </g>\n     </g>\n     <g id=\"text_3\">\n      <!-- 0010 -->\n      <g transform=\"translate(85.191258 239.238438)scale(0.1 -0.1)\">\n       <use xlink:href=\"#DejaVuSans-48\"/>\n       <use x=\"63.623047\" xlink:href=\"#DejaVuSans-48\"/>\n       <use x=\"127.246094\" xlink:href=\"#DejaVuSans-49\"/>\n       <use x=\"190.869141\" xlink:href=\"#DejaVuSans-48\"/>\n      </g>\n     </g>\n    </g>\n    <g id=\"xtick_4\">\n     <g id=\"line2d_4\">\n      <g>\n       <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"117.179779\" xlink:href=\"#mbe9824f0f9\" y=\"224.64\"/>\n      </g>\n     </g>\n     <g id=\"text_4\">\n      <!-- 0011 -->\n      <g transform=\"translate(104.454779 239.238438)scale(0.1 -0.1)\">\n       <use xlink:href=\"#DejaVuSans-48\"/>\n       <use x=\"63.623047\" xlink:href=\"#DejaVuSans-48\"/>\n       <use x=\"127.246094\" xlink:href=\"#DejaVuSans-49\"/>\n       <use x=\"190.869141\" xlink:href=\"#DejaVuSans-49\"/>\n      </g>\n     </g>\n    </g>\n    <g id=\"xtick_5\">\n     <g id=\"line2d_5\">\n      <g>\n       <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"136.4433\" xlink:href=\"#mbe9824f0f9\" y=\"224.64\"/>\n      </g>\n     </g>\n     <g id=\"text_5\">\n      <!-- 0100 -->\n      <g transform=\"translate(123.7183 239.238438)scale(0.1 -0.1)\">\n       <use xlink:href=\"#DejaVuSans-48\"/>\n       <use x=\"63.623047\" xlink:href=\"#DejaVuSans-49\"/>\n       <use x=\"127.246094\" xlink:href=\"#DejaVuSans-48\"/>\n       <use x=\"190.869141\" xlink:href=\"#DejaVuSans-48\"/>\n      </g>\n     </g>\n    </g>\n    <g id=\"xtick_6\">\n     <g id=\"line2d_6\">\n      <g>\n       <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"155.706822\" xlink:href=\"#mbe9824f0f9\" y=\"224.64\"/>\n      </g>\n     </g>\n     <g id=\"text_6\">\n      <!-- 0101 -->\n      <g transform=\"translate(142.981822 239.238438)scale(0.1 -0.1)\">\n       <use xlink:href=\"#DejaVuSans-48\"/>\n       <use x=\"63.623047\" xlink:href=\"#DejaVuSans-49\"/>\n       <use x=\"127.246094\" xlink:href=\"#DejaVuSans-48\"/>\n       <use x=\"190.869141\" xlink:href=\"#DejaVuSans-49\"/>\n      </g>\n     </g>\n    </g>\n    <g id=\"xtick_7\">\n     <g id=\"line2d_7\">\n      <g>\n       <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"174.970343\" xlink:href=\"#mbe9824f0f9\" y=\"224.64\"/>\n      </g>\n     </g>\n     <g id=\"text_7\">\n      <!-- 0110 -->\n      <g transform=\"translate(162.245343 239.238438)scale(0.1 -0.1)\">\n       <use xlink:href=\"#DejaVuSans-48\"/>\n       <use x=\"63.623047\" xlink:href=\"#DejaVuSans-49\"/>\n       <use x=\"127.246094\" xlink:href=\"#DejaVuSans-49\"/>\n       <use x=\"190.869141\" xlink:href=\"#DejaVuSans-48\"/>\n      </g>\n     </g>\n    </g>\n    <g id=\"xtick_8\">\n     <g id=\"line2d_8\">\n      <g>\n       <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"194.233864\" xlink:href=\"#mbe9824f0f9\" y=\"224.64\"/>\n      </g>\n     </g>\n     <g id=\"text_8\">\n      <!-- 0111 -->\n      <g transform=\"translate(181.508864 239.238438)scale(0.1 -0.1)\">\n       <use xlink:href=\"#DejaVuSans-48\"/>\n       <use x=\"63.623047\" xlink:href=\"#DejaVuSans-49\"/>\n       <use x=\"127.246094\" xlink:href=\"#DejaVuSans-49\"/>\n       <use x=\"190.869141\" xlink:href=\"#DejaVuSans-49\"/>\n      </g>\n     </g>\n    </g>\n    <g id=\"xtick_9\">\n     <g id=\"line2d_9\">\n      <g>\n       <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"213.497386\" xlink:href=\"#mbe9824f0f9\" y=\"224.64\"/>\n      </g>\n     </g>\n     <g id=\"text_9\">\n      <!-- 1000 -->\n      <g transform=\"translate(200.772386 239.238438)scale(0.1 -0.1)\">\n       <use xlink:href=\"#DejaVuSans-49\"/>\n       <use x=\"63.623047\" xlink:href=\"#DejaVuSans-48\"/>\n       <use x=\"127.246094\" xlink:href=\"#DejaVuSans-48\"/>\n       <use x=\"190.869141\" xlink:href=\"#DejaVuSans-48\"/>\n      </g>\n     </g>\n    </g>\n    <g id=\"xtick_10\">\n     <g id=\"line2d_10\">\n      <g>\n       <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"232.760907\" xlink:href=\"#mbe9824f0f9\" y=\"224.64\"/>\n      </g>\n     </g>\n     <g id=\"text_10\">\n      <!-- 1001 -->\n      <g transform=\"translate(220.035907 239.238438)scale(0.1 -0.1)\">\n       <use xlink:href=\"#DejaVuSans-49\"/>\n       <use x=\"63.623047\" xlink:href=\"#DejaVuSans-48\"/>\n       <use x=\"127.246094\" xlink:href=\"#DejaVuSans-48\"/>\n       <use x=\"190.869141\" xlink:href=\"#DejaVuSans-49\"/>\n      </g>\n     </g>\n    </g>\n    <g id=\"xtick_11\">\n     <g id=\"line2d_11\">\n      <g>\n       <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"252.024428\" xlink:href=\"#mbe9824f0f9\" y=\"224.64\"/>\n      </g>\n     </g>\n     <g id=\"text_11\">\n      <!-- 1010 -->\n      <g transform=\"translate(239.299428 239.238438)scale(0.1 -0.1)\">\n       <use xlink:href=\"#DejaVuSans-49\"/>\n       <use x=\"63.623047\" xlink:href=\"#DejaVuSans-48\"/>\n       <use x=\"127.246094\" xlink:href=\"#DejaVuSans-49\"/>\n       <use x=\"190.869141\" xlink:href=\"#DejaVuSans-48\"/>\n      </g>\n     </g>\n    </g>\n    <g id=\"xtick_12\">\n     <g id=\"line2d_12\">\n      <g>\n       <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"271.28795\" xlink:href=\"#mbe9824f0f9\" y=\"224.64\"/>\n      </g>\n     </g>\n     <g id=\"text_12\">\n      <!-- 1011 -->\n      <g transform=\"translate(258.56295 239.238438)scale(0.1 -0.1)\">\n       <use xlink:href=\"#DejaVuSans-49\"/>\n       <use x=\"63.623047\" xlink:href=\"#DejaVuSans-48\"/>\n       <use x=\"127.246094\" xlink:href=\"#DejaVuSans-49\"/>\n       <use x=\"190.869141\" xlink:href=\"#DejaVuSans-49\"/>\n      </g>\n     </g>\n    </g>\n    <g id=\"xtick_13\">\n     <g id=\"line2d_13\">\n      <g>\n       <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"290.551471\" xlink:href=\"#mbe9824f0f9\" y=\"224.64\"/>\n      </g>\n     </g>\n     <g id=\"text_13\">\n      <!-- 1100 -->\n      <g transform=\"translate(277.826471 239.238438)scale(0.1 -0.1)\">\n       <use xlink:href=\"#DejaVuSans-49\"/>\n       <use x=\"63.623047\" xlink:href=\"#DejaVuSans-49\"/>\n       <use x=\"127.246094\" xlink:href=\"#DejaVuSans-48\"/>\n       <use x=\"190.869141\" xlink:href=\"#DejaVuSans-48\"/>\n      </g>\n     </g>\n    </g>\n    <g id=\"xtick_14\">\n     <g id=\"line2d_14\">\n      <g>\n       <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"309.814992\" xlink:href=\"#mbe9824f0f9\" y=\"224.64\"/>\n      </g>\n     </g>\n     <g id=\"text_14\">\n      <!-- 1101 -->\n      <g transform=\"translate(297.089992 239.238438)scale(0.1 -0.1)\">\n       <use xlink:href=\"#DejaVuSans-49\"/>\n       <use x=\"63.623047\" xlink:href=\"#DejaVuSans-49\"/>\n       <use x=\"127.246094\" xlink:href=\"#DejaVuSans-48\"/>\n       <use x=\"190.869141\" xlink:href=\"#DejaVuSans-49\"/>\n      </g>\n     </g>\n    </g>\n    <g id=\"xtick_15\">\n     <g id=\"line2d_15\">\n      <g>\n       <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"329.078513\" xlink:href=\"#mbe9824f0f9\" y=\"224.64\"/>\n      </g>\n     </g>\n     <g id=\"text_15\">\n      <!-- 1110 -->\n      <g transform=\"translate(316.353513 239.238438)scale(0.1 -0.1)\">\n       <use xlink:href=\"#DejaVuSans-49\"/>\n       <use x=\"63.623047\" xlink:href=\"#DejaVuSans-49\"/>\n       <use x=\"127.246094\" xlink:href=\"#DejaVuSans-49\"/>\n       <use x=\"190.869141\" xlink:href=\"#DejaVuSans-48\"/>\n      </g>\n     </g>\n    </g>\n    <g id=\"xtick_16\">\n     <g id=\"line2d_16\">\n      <g>\n       <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"348.342035\" xlink:href=\"#mbe9824f0f9\" y=\"224.64\"/>\n      </g>\n     </g>\n     <g id=\"text_16\">\n      <!-- 1111 -->\n      <g transform=\"translate(335.617035 239.238438)scale(0.1 -0.1)\">\n       <use xlink:href=\"#DejaVuSans-49\"/>\n       <use x=\"63.623047\" xlink:href=\"#DejaVuSans-49\"/>\n       <use x=\"127.246094\" xlink:href=\"#DejaVuSans-49\"/>\n       <use x=\"190.869141\" xlink:href=\"#DejaVuSans-49\"/>\n      </g>\n     </g>\n    </g>\n   </g>\n   <g id=\"matplotlib.axis_2\">\n    <g id=\"ytick_1\">\n     <g id=\"line2d_17\">\n      <defs>\n       <path d=\"M 0 0 \nL -3.5 0 \n\" id=\"m82331d41a5\" style=\"stroke:#000000;stroke-width:0.8;\"/>\n      </defs>\n      <g>\n       <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"36.465625\" xlink:href=\"#m82331d41a5\" y=\"224.64\"/>\n      </g>\n     </g>\n     <g id=\"text_17\">\n      <!-- 0.00 -->\n      <g transform=\"translate(7.2 228.439219)scale(0.1 -0.1)\">\n       <defs>\n        <path d=\"M 10.6875 12.40625 \nL 21 12.40625 \nL 21 0 \nL 10.6875 0 \nz\n\" id=\"DejaVuSans-46\"/>\n       </defs>\n       <use xlink:href=\"#DejaVuSans-48\"/>\n       <use x=\"63.623047\" xlink:href=\"#DejaVuSans-46\"/>\n       <use x=\"95.410156\" xlink:href=\"#DejaVuSans-48\"/>\n       <use x=\"159.033203\" xlink:href=\"#DejaVuSans-48\"/>\n      </g>\n     </g>\n    </g>\n    <g id=\"ytick_2\">\n     <g id=\"line2d_18\">\n      <g>\n       <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"36.465625\" xlink:href=\"#m82331d41a5\" y=\"199.789714\"/>\n      </g>\n     </g>\n     <g id=\"text_18\">\n      <!-- 0.02 -->\n      <g transform=\"translate(7.2 203.588933)scale(0.1 -0.1)\">\n       <defs>\n        <path d=\"M 19.1875 8.296875 \nL 53.609375 8.296875 \nL 53.609375 0 \nL 7.328125 0 \nL 7.328125 8.296875 \nQ 12.9375 14.109375 22.625 23.890625 \nQ 32.328125 33.6875 34.8125 36.53125 \nQ 39.546875 41.84375 41.421875 45.53125 \nQ 43.3125 49.21875 43.3125 52.78125 \nQ 43.3125 58.59375 39.234375 62.25 \nQ 35.15625 65.921875 28.609375 65.921875 \nQ 23.96875 65.921875 18.8125 64.3125 \nQ 13.671875 62.703125 7.8125 59.421875 \nL 7.8125 69.390625 \nQ 13.765625 71.78125 18.9375 73 \nQ 24.125 74.21875 28.421875 74.21875 \nQ 39.75 74.21875 46.484375 68.546875 \nQ 53.21875 62.890625 53.21875 53.421875 \nQ 53.21875 48.921875 51.53125 44.890625 \nQ 49.859375 40.875 45.40625 35.40625 \nQ 44.1875 33.984375 37.640625 27.21875 \nQ 31.109375 20.453125 19.1875 8.296875 \nz\n\" id=\"DejaVuSans-50\"/>\n       </defs>\n       <use xlink:href=\"#DejaVuSans-48\"/>\n       <use x=\"63.623047\" xlink:href=\"#DejaVuSans-46\"/>\n       <use x=\"95.410156\" xlink:href=\"#DejaVuSans-48\"/>\n       <use x=\"159.033203\" xlink:href=\"#DejaVuSans-50\"/>\n      </g>\n     </g>\n    </g>\n    <g id=\"ytick_3\">\n     <g id=\"line2d_19\">\n      <g>\n       <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"36.465625\" xlink:href=\"#m82331d41a5\" y=\"174.939429\"/>\n      </g>\n     </g>\n     <g id=\"text_19\">\n      <!-- 0.04 -->\n      <g transform=\"translate(7.2 178.738647)scale(0.1 -0.1)\">\n       <defs>\n        <path d=\"M 37.796875 64.3125 \nL 12.890625 25.390625 \nL 37.796875 25.390625 \nz\nM 35.203125 72.90625 \nL 47.609375 72.90625 \nL 47.609375 25.390625 \nL 58.015625 25.390625 \nL 58.015625 17.1875 \nL 47.609375 17.1875 \nL 47.609375 0 \nL 37.796875 0 \nL 37.796875 17.1875 \nL 4.890625 17.1875 \nL 4.890625 26.703125 \nz\n\" id=\"DejaVuSans-52\"/>\n       </defs>\n       <use xlink:href=\"#DejaVuSans-48\"/>\n       <use x=\"63.623047\" xlink:href=\"#DejaVuSans-46\"/>\n       <use x=\"95.410156\" xlink:href=\"#DejaVuSans-48\"/>\n       <use x=\"159.033203\" xlink:href=\"#DejaVuSans-52\"/>\n      </g>\n     </g>\n    </g>\n    <g id=\"ytick_4\">\n     <g id=\"line2d_20\">\n      <g>\n       <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"36.465625\" xlink:href=\"#m82331d41a5\" y=\"150.089143\"/>\n      </g>\n     </g>\n     <g id=\"text_20\">\n      <!-- 0.06 -->\n      <g transform=\"translate(7.2 153.888362)scale(0.1 -0.1)\">\n       <defs>\n        <path d=\"M 33.015625 40.375 \nQ 26.375 40.375 22.484375 35.828125 \nQ 18.609375 31.296875 18.609375 23.390625 \nQ 18.609375 15.53125 22.484375 10.953125 \nQ 26.375 6.390625 33.015625 6.390625 \nQ 39.65625 6.390625 43.53125 10.953125 \nQ 47.40625 15.53125 47.40625 23.390625 \nQ 47.40625 31.296875 43.53125 35.828125 \nQ 39.65625 40.375 33.015625 40.375 \nz\nM 52.59375 71.296875 \nL 52.59375 62.3125 \nQ 48.875 64.0625 45.09375 64.984375 \nQ 41.3125 65.921875 37.59375 65.921875 \nQ 27.828125 65.921875 22.671875 59.328125 \nQ 17.53125 52.734375 16.796875 39.40625 \nQ 19.671875 43.65625 24.015625 45.921875 \nQ 28.375 48.1875 33.59375 48.1875 \nQ 44.578125 48.1875 50.953125 41.515625 \nQ 57.328125 34.859375 57.328125 23.390625 \nQ 57.328125 12.15625 50.6875 5.359375 \nQ 44.046875 -1.421875 33.015625 -1.421875 \nQ 20.359375 -1.421875 13.671875 8.265625 \nQ 6.984375 17.96875 6.984375 36.375 \nQ 6.984375 53.65625 15.1875 63.9375 \nQ 23.390625 74.21875 37.203125 74.21875 \nQ 40.921875 74.21875 44.703125 73.484375 \nQ 48.484375 72.75 52.59375 71.296875 \nz\n\" id=\"DejaVuSans-54\"/>\n       </defs>\n       <use xlink:href=\"#DejaVuSans-48\"/>\n       <use x=\"63.623047\" xlink:href=\"#DejaVuSans-46\"/>\n       <use x=\"95.410156\" xlink:href=\"#DejaVuSans-48\"/>\n       <use x=\"159.033203\" xlink:href=\"#DejaVuSans-54\"/>\n      </g>\n     </g>\n    </g>\n    <g id=\"ytick_5\">\n     <g id=\"line2d_21\">\n      <g>\n       <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"36.465625\" xlink:href=\"#m82331d41a5\" y=\"125.238857\"/>\n      </g>\n     </g>\n     <g id=\"text_21\">\n      <!-- 0.08 -->\n      <g transform=\"translate(7.2 129.038076)scale(0.1 -0.1)\">\n       <defs>\n        <path d=\"M 31.78125 34.625 \nQ 24.75 34.625 20.71875 30.859375 \nQ 16.703125 27.09375 16.703125 20.515625 \nQ 16.703125 13.921875 20.71875 10.15625 \nQ 24.75 6.390625 31.78125 6.390625 \nQ 38.8125 6.390625 42.859375 10.171875 \nQ 46.921875 13.96875 46.921875 20.515625 \nQ 46.921875 27.09375 42.890625 30.859375 \nQ 38.875 34.625 31.78125 34.625 \nz\nM 21.921875 38.8125 \nQ 15.578125 40.375 12.03125 44.71875 \nQ 8.5 49.078125 8.5 55.328125 \nQ 8.5 64.0625 14.71875 69.140625 \nQ 20.953125 74.21875 31.78125 74.21875 \nQ 42.671875 74.21875 48.875 69.140625 \nQ 55.078125 64.0625 55.078125 55.328125 \nQ 55.078125 49.078125 51.53125 44.71875 \nQ 48 40.375 41.703125 38.8125 \nQ 48.828125 37.15625 52.796875 32.3125 \nQ 56.78125 27.484375 56.78125 20.515625 \nQ 56.78125 9.90625 50.3125 4.234375 \nQ 43.84375 -1.421875 31.78125 -1.421875 \nQ 19.734375 -1.421875 13.25 4.234375 \nQ 6.78125 9.90625 6.78125 20.515625 \nQ 6.78125 27.484375 10.78125 32.3125 \nQ 14.796875 37.15625 21.921875 38.8125 \nz\nM 18.3125 54.390625 \nQ 18.3125 48.734375 21.84375 45.5625 \nQ 25.390625 42.390625 31.78125 42.390625 \nQ 38.140625 42.390625 41.71875 45.5625 \nQ 45.3125 48.734375 45.3125 54.390625 \nQ 45.3125 60.0625 41.71875 63.234375 \nQ 38.140625 66.40625 31.78125 66.40625 \nQ 25.390625 66.40625 21.84375 63.234375 \nQ 18.3125 60.0625 18.3125 54.390625 \nz\n\" id=\"DejaVuSans-56\"/>\n       </defs>\n       <use xlink:href=\"#DejaVuSans-48\"/>\n       <use x=\"63.623047\" xlink:href=\"#DejaVuSans-46\"/>\n       <use x=\"95.410156\" xlink:href=\"#DejaVuSans-48\"/>\n       <use x=\"159.033203\" xlink:href=\"#DejaVuSans-56\"/>\n      </g>\n     </g>\n    </g>\n    <g id=\"ytick_6\">\n     <g id=\"line2d_22\">\n      <g>\n       <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"36.465625\" xlink:href=\"#m82331d41a5\" y=\"100.388571\"/>\n      </g>\n     </g>\n     <g id=\"text_22\">\n      <!-- 0.10 -->\n      <g transform=\"translate(7.2 104.18779)scale(0.1 -0.1)\">\n       <use xlink:href=\"#DejaVuSans-48\"/>\n       <use x=\"63.623047\" xlink:href=\"#DejaVuSans-46\"/>\n       <use x=\"95.410156\" xlink:href=\"#DejaVuSans-49\"/>\n       <use x=\"159.033203\" xlink:href=\"#DejaVuSans-48\"/>\n      </g>\n     </g>\n    </g>\n    <g id=\"ytick_7\">\n     <g id=\"line2d_23\">\n      <g>\n       <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"36.465625\" xlink:href=\"#m82331d41a5\" y=\"75.538286\"/>\n      </g>\n     </g>\n     <g id=\"text_23\">\n      <!-- 0.12 -->\n      <g transform=\"translate(7.2 79.337504)scale(0.1 -0.1)\">\n       <use xlink:href=\"#DejaVuSans-48\"/>\n       <use x=\"63.623047\" xlink:href=\"#DejaVuSans-46\"/>\n       <use x=\"95.410156\" xlink:href=\"#DejaVuSans-49\"/>\n       <use x=\"159.033203\" xlink:href=\"#DejaVuSans-50\"/>\n      </g>\n     </g>\n    </g>\n    <g id=\"ytick_8\">\n     <g id=\"line2d_24\">\n      <g>\n       <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"36.465625\" xlink:href=\"#m82331d41a5\" y=\"50.688\"/>\n      </g>\n     </g>\n     <g id=\"text_24\">\n      <!-- 0.14 -->\n      <g transform=\"translate(7.2 54.487219)scale(0.1 -0.1)\">\n       <use xlink:href=\"#DejaVuSans-48\"/>\n       <use x=\"63.623047\" xlink:href=\"#DejaVuSans-46\"/>\n       <use x=\"95.410156\" xlink:href=\"#DejaVuSans-49\"/>\n       <use x=\"159.033203\" xlink:href=\"#DejaVuSans-52\"/>\n      </g>\n     </g>\n    </g>\n    <g id=\"ytick_9\">\n     <g id=\"line2d_25\">\n      <g>\n       <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"36.465625\" xlink:href=\"#m82331d41a5\" y=\"25.837714\"/>\n      </g>\n     </g>\n     <g id=\"text_25\">\n      <!-- 0.16 -->\n      <g transform=\"translate(7.2 29.636933)scale(0.1 -0.1)\">\n       <use xlink:href=\"#DejaVuSans-48\"/>\n       <use x=\"63.623047\" xlink:href=\"#DejaVuSans-46\"/>\n       <use x=\"95.410156\" xlink:href=\"#DejaVuSans-49\"/>\n       <use x=\"159.033203\" xlink:href=\"#DejaVuSans-54\"/>\n      </g>\n     </g>\n    </g>\n   </g>\n   <g id=\"patch_19\">\n    <path d=\"M 36.465625 224.64 \nL 36.465625 7.2 \n\" style=\"fill:none;stroke:#000000;stroke-linecap:square;stroke-linejoin:miter;stroke-width:0.8;\"/>\n   </g>\n   <g id=\"patch_20\">\n    <path d=\"M 371.265625 224.64 \nL 371.265625 7.2 \n\" style=\"fill:none;stroke:#000000;stroke-linecap:square;stroke-linejoin:miter;stroke-width:0.8;\"/>\n   </g>\n   <g id=\"patch_21\">\n    <path d=\"M 36.465625 224.64 \nL 371.265625 224.64 \n\" style=\"fill:none;stroke:#000000;stroke-linecap:square;stroke-linejoin:miter;stroke-width:0.8;\"/>\n   </g>\n   <g id=\"patch_22\">\n    <path d=\"M 36.465625 7.2 \nL 371.265625 7.2 \n\" style=\"fill:none;stroke:#000000;stroke-linecap:square;stroke-linejoin:miter;stroke-width:0.8;\"/>\n   </g>\n  </g>\n </g>\n <defs>\n  <clipPath id=\"p64d20e1eac\">\n   <rect height=\"217.44\" width=\"334.8\" x=\"36.465625\" y=\"7.2\"/>\n  </clipPath>\n </defs>\n</svg>\n",
      "image/png": "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\n"
     },
     "metadata": {
      "needs_background": "light"
     }
    }
   ],
   "source": [
    "opti_para=res.x\n",
    "U_total=build_U_total(opti_para,C,B)\n",
    "final_state = hn*U_total*init_state\n",
    "final_state=final_state.data.toarray()\n",
    "show_amp(final_state)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "metadata": {},
   "outputs": [
    {
     "output_type": "execute_result",
     "data": {
      "text/plain": [
       "array([-7.85397856,  3.92697945])"
      ]
     },
     "metadata": {},
     "execution_count": 16
    }
   ],
   "source": [
    "opti_para[::2]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 219,
   "metadata": {},
   "outputs": [
    {
     "output_type": "stream",
     "name": "stdout",
     "text": [
      "For layer 1\nTime for G_(0,1):0.14084333011317415\nTime for G_(1,2):0.15286928565351357\nTime for G_(2,3):0.1309260014863419\nTime for G_(0,3):0.16179062806394262\nFor layer 2\nTime for G_(0,1):0.1741583999929331\nTime for G_(1,2):0.18902897408123887\nTime for G_(2,3):0.16189522725720368\nTime for G_(0,3):0.20006057010173148\n"
     ]
    }
   ],
   "source": [
    "gamma = opti_para[::2]\n",
    "beta = opti_para[1::2]\n",
    "for p in range(len(gamma)):\n",
    "    print(\"For layer {}\".format(p+1))\n",
    "    for n,v in J.items():\n",
    "        print('Time for G_({},{}):{}'.format(n[0],n[1],gamma[p]*graph[n]/2/v))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ]
}